<?php

/**
 * Classe représentant un parametre.
 * @author BALMAND Clémence
 * @since 11 novembre 2013
 * @version 1.0
 */

class Parametre
{
	/*Attributs*/
	/**
	 * Identifiant du paramètre
	 * @var int
	 */
	private $_id;

	/**
	 * Libelle du paramètre
	 * @var string
	 */
	private $_libelle;

	/**
	 *  Valeur du paramètre
	 *  @var string
	 */
	private $_valeur;

	/*Constructeur */
	
	public function __construct()
	{
	$args = func_get_args();

	switch(func_num_args())
		{
			case 1 : // juste l'id du paramètre.
				$this->set_id($args[0]);
				break;
			case 2 : // LIBELLE_PARAMETRE, VALEUR_PARAMETRE
				$this->set_libelle($args[0]);
				$this->set_valeur($args[1]);
				break;
			case 3 : // ID_PARAMETRE, LIBELLE_PARAMETRE, VALEUR_PARAMETRE
				$this->set_id($args[0]);
				$this->set_libelle($args[1]);
				$this->set_valeur($args[2]);
				break;
			default:
				trigger_error('Constructeur de Paramètre avec ' + func_num_args() + ' non défini.');
				break;
		}
	}
	/* Méthodes BDD */
	
	public static function getAllParametre()
	{
		$bdd = PDO2::getInstance();
		$donnees = $bdd->query(	'SELECT '.ID_PARAMETRE.', '.LIBELLE_PARAMETRE.', '.VALEUR_PARAMETRE.'
				FROM '.TABLE_PARAMETRE);
	
		if($donnees == false)
		{
			$donnees->closeCursor();
			return 0;
		}
		else 
		{
			$don = $donnees->fetchAll();
			$donnees->closeCursor();
			$r="";
			foreach($don as $d)
			{
				$p[] = new Parametre($d[ID_PARAMETRE], $d[LIBELLE_PARAMETRE], $d[VALEUR_PARAMETRE]);
			}
			return $p;
		}
		
	}
	
	public function getOneParametre()
	{
		$bdd = PDO2::getInstance();
		$donnees = $bdd->query(	'SELECT '.ID_PARAMETRE.', '.LIBELLE_PARAMETRE.', '.VALEUR_PARAMETRE.'
				FROM '.TABLE_PARAMETRE.'
				WHERE '.ID_PARAMETRE.' = \''.$this->get_id().'\'');
	
		$d = $donnees->fetch();
	
		$this->set_libelle($d[LIBELLE_PARAMETRE]);
		$this->set_valeur($d[VALEUR_PARAMETRE]);
	}
	
	public function modifOneParametre()
	{
		$bdd = PDO2::getInstance();
		$result= $bdd->exec(
				'UPDATE '.TABLE_PARAMETRE.'
				SET '.LIBELLE_PARAMETRE.' = "'.$this->get_libelle().'", '.VALEUR_PARAMETRE.' = "'.$this->get_valeur().'"
				WHERE '.ID_PARAMETRE.' = '.$this->get_id());
		
		if($result == 0)
			return false;
		else
			return true;
	}
	
	/*Getters et Setters*/

	/**
	 * Fonction permettant de récupérer l'identifiant du paramètre
	 * @return int
	 */
	public function get_id()
	{
		return $this->_id;
	}

	/**
	 * Fonction permettant de modifier l'identifiant du paramètre
	 * @param int
	 */
	public function set_id($id)
	{
		$this->_id=$id;
	}

	/**
	 * Fonction permettant de récupérer le libelle du paramètre
	 * @return string
	 */
	public function get_libelle()
	{
		return $this->_libelle;
	}
	
	/**
	 * Fonction permettant de modifier le libelle du paramètre
	 * @param string
	 */
	public function set_libelle($libelle)
	{
		$this->_libelle=$libelle;
	}

	/**
	 * Fonction permettant de récupérer la valeur du parametre
	 * @return string
	 */
	public function get_valeur()
	{
		return $this->_valeur;
	}
	
	/**
	 * Fonction permettant de modifier la valeur du parametre
	 * @param string
	 */
	public function set_valeur($valeur)
	{
		$this->_valeur=$valeur;
	}
}


?>